跳到主要内容

单位

each_buff

遍历状态

  • 参数
    • name (string) - 状态名
  • 遍历
    • buff (buff) - 遍历到的状态

当指定了name后只会遍历到该名称的状态,否则遍历所有状态。

for buff in unit:each_buff '状态名' do
-- buff为遍历到的状态
end

each_skill

遍历技能

  • 参数
  • 遍历
    • skill (skill) - 遍历到的技能

如果指定了type,则会遍历到所有技能类型为type的技能;否则会遍历到所有技能。总是可以遍历到0级技能。

for skill in unit:each_skill '英雄' do
-- skill为遍历到的技能
end

event

注册事件

  • 参数
    • name (string) - 事件名
    • callback (function) - 事件函数
  • 返回
    • trigger (trigger) - 触发器
  • 事件参数
    • trigger (trigger) - 触发器
    • ... (...) - 自定义数据

这是对base.event_register方法的封装,你可以在这里看到详细说明。

local trigger = unit:event('单位-离开视野', function (trigger, unit)
-- 你的代码
end)

event_notify

触发事件

  • 参数
    • name (string) - 事件名
    • ... (...) - 自定义数据

这是对base.event_notify方法的封装,你可以在这里看到详细说明。

unit:event_notify('自定义事件', ...)

find_skill

寻找技能

  • 参数
    • name (string/integer) - 技能名/格子
    • type (string) - 技能类型
  • 返回
    • skill (skill) - 技能

指定type后只在此类型中寻找技能。如果name使用格子,那么必须要指定type。可以找到0级技能。

local skill = unit:find_skill('技能名')
local skill = unit:find_skill(0, '英雄')

get

获取属性

  • 参数
  • 返回
    • value (number/string) - 数值或字符串

客户端并不一定能获取到单位的真实属性,这取决于单位是否可以见以及这个属性的同步方式

local value = unit:get '生命'

get_class

获取类别

如果并不知道这个单位的类别是什么,则返回"未知"

local class = unit:get_class()

get_data

获取数据

  • 返回
    • data (table) - 数据表

获取这个单位在UnitData中对应的数据表。等价于base.table.unit[unit:get_name()],因此如果单位名不正确(通常是因为不知道单位名是什么)则会返回nil

get_facing

获取朝向

  • 返回
    • facing (number) - 朝向

如果单位不可见,则返回0.0

local facing = unit:get_facing()

get_height

获取高度

  • 返回
    • height (number) - 高度

如果单位不可见,则返回0.0

local height = unit:get_height()

get_name

获取名字

  • 返回
    • name (string) - 单位名

如果并不知道这个单位的名字是什么,则会返回空字符串。

local name = unit:get_name()

get_owner

获取所有者

  • 返回
    • owner (player) - 所有者

如果并不知道这个单位的所有者是谁,则返回nil

local owner = unit:get_owner()

get_point

获取位置

  • 返回
    • point (point) - 点

如果单位不可见,则点为(0.0, 0.0, 0.0)

local point = unit:get_point()

get_socket_point

获取socket位置以及朝向

  • 返回
    • x (number) - X坐标
    • y (number) - Y坐标
    • z (number) - Z坐标
    • a (number) - Pitch
    • b (number) - Yaw
    • c (number) - Roll
local x, y, z, a, b, c = unit:get_socket_point(socketname)

get_tag

获取类型

如果并不知道这个单位的类型是什么,则返回"未知"

local type = unit:get_tag()

get_xy

获取坐标

  • 返回
    • x (number) - X坐标
    • y (number) - Y坐标

如果单位不可见,则返回0.0, 0.0

local x, y = unit:get_xy()

is_visible

是否可见

  • 返回
    • result (boolean) - 是否可见

单位由不可见变为可见时触发单位-进入视野事件;由可见变为不可见时触发单位-离开视野事件。

local res = unit:is_visible()

cast

  • 返回
  • 参数
    • name(string) 技能名
    • target(point/unit/..) 目标,具体类型视技能目标类型而定
    • data(table) 自定义数据
    unit:cast('飞雷神-扔', 0)

attach_to

将单位附着在别的单位上,注意该单位的碰撞仍然在原处

  • 参数
    • target (unit) - 目标单位
    • socket (string) - 可以不填,或者填target上的socket名字
unit:attach_to(target, socket)

attach_model

附加模型

  • 参数
    • path 模型prefab文件所在目录
    • hand_point 模型附加到的关节/绑点名,如果没有或者没找到会挂到单位原点
    • hold_point 模型附加后hand_point相对于模型原点的位置,旋转,缩放,prefab文件里存在basic_info的sockets里

detach_model

附加模型

  • 参数
    • path 模型prefab文件所在目录

change_model

改变单位的模型

  • 参数
    • path 模型prefab所在目录

get_highlight

获取是否高亮

local on_or_off = unit:get_highlight()

set_highlight

设置高亮

  • 参数
    • on 开或者关
    • color_r 颜色通道r
    • color_g 颜色通道g
    • color_b 颜色通道b
    • color_a 颜色通道a
    • time 持续时间,填0表示永久生效
unit:set_highlight(true, {  })

get_xray_enable

获取遮挡显示是否可用

local enable = unit:get_xray_enable()

set_xray_enable

  • 参数
    • on 开或者关

设置遮挡显示是否可用

unit:set_xray_enable(true)